package com.threeti.mecool.common.resource;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URL;

public interface Content {//TODO jay:Content#list(search key or filter mechanism bla...bla)

	/** URL prefix for loading from the file system: "file:" */
	public static final String FILE_URL_PREFIX = "file:";

	/** URL protocol for a file in the file system: "file" */
	public static final String URL_PROTOCOL_FILE = "file";

	boolean exists();

	boolean isReadable();

	boolean isOpen();

	URL getURL() throws IOException;

	URI getURI() throws IOException;
	
	File getFile() throws IOException;

	InputStream getInputStream() throws IOException;

	byte[] getBytes() throws IOException;
	
	long contentLength() throws IOException;
	
	long lastModified() throws IOException;

	String getFilename();

	String getDescription();
}
